package com.nf.Mapper;

import com.nf.pojo.Product;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * ClossName:ProductMapper
 * Pakage:com.nf.Mapper
 * Description
 *
 *
 * @Author L
 * @Create 2023/11/30 0:30
 * @Version 2023.1.3
 */
public interface ProductMapper {

//    查询所有
    List<Product> selectAll();
        /*
            查看详情
         */
    Product selectById(int id);

    /*
        条件查询
            1.散装参数:如果方法中有多个参数，需要使用@Param("SQL参数占位符名称”)
            2.对象参数:只需要保证sQL中的参数名和实体类属性名对应上，即可设置成功
            3.Map参数:只需要保证sQL中的参数名和map集合的键的名称对应上，即可设置成功
     */
    //List<Product> selectInfo(@Param("name")String name, @Param("descr") String descrinption,@Param("sta") int status);
    //List<Product> selectInfo (Product product);
    List<Product> selectInfo(Map map);

//    单条件动态查询
    List<Product> selectInfoOne(Map map);

    /*
        添加方法
     */
    int addProduct(Product product);

    /*
      修改方法
    */
    int updateProduct(Product product);

    /*
      根据id删除方法
    */
    int deleteProduct(int id);


    /*
      根据id批量删除方法
    */
    int deleteProducts(@Param("ids") int[] ids);


}
